package com.woniuxy.sms;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration;

/**
 * @author yellow Doctor
 * @date 2025-03-19
 * @desc 蜗牛创想：www.woniuxy.com
 *
 *   sms模板:
 *   RedisTemplate
 *   JDBCTemplate
 *   RabbitMQTemplate
 *   SMSTemplate
 *  Springboot的自动装配
 *   1、加载 自动装配的类
 *       @SpringBootApplication -> @EnableAutoConfiguration(开启自动装配) ->
 *                        @Import(AutoConfigurationImportSelector.class) (把对象提交到ioc容器中)
 *               AutoConfigurationImportSelector 这个类中会扫描自动装配
 *                      getCandidateConfigurations 这个方法 扫描 文件 META-INF/spring.factories （有自动装配的类）
 *                     回去加载 RedisAutoConfiguration这个类 （RedisTemplate 创建添加到ioc容器中）
 *                             mybatisAutoConfiguration这个类
 *   2、如何初始化 RedisTemplate
 *         1、 加 ConnectionConfiguration  连接对象 (都是用默认的配置)
 *            @EnableConfigurationProperties(RedisProperties.class) 加载 RedisProperties 类
 *               RedisProperties 这个类中读取了 yml中的配置
 *
 *               mybatisAutoConfiguration这个类 中默认要去加载 yaml中连接数据库的操作
 *         2、@Bean 方法进行对象初始化
 *           	        @Bean
                     * 	@ConditionalOnMissingBean(name = "redisTemplate")
                     * 	public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)
                     * 			throws UnknownHostException {
                     * 		RedisTemplate<Object, Object> template = new RedisTemplate<>();
                     * 		template.setConnectionFactory(redisConnectionFactory);
                     * 		return     mplate;
                     * 	}
 *
 * 	 面试题:@SpringBoot有哪些基本的注解?
 *        1、在堆数量   不能脱颖而出
 *        2、脱颖而出 专业性 基本功
 *           1、spring的基本注解 springmvc 注解
 *           2、 详情注解
 *                 @SpringBootApplication  复核合注解
 *                        @config     xxx
 *                        @ 开启自动装配   xxx
 *                        @ 扫描          xxx
 *                 @Import  在底层用到  (把对象 直接添加到ioc容器中 )
 *                         在自动中 和 底层都是这么把对象添加到ioc容器中
 *        
 *        常见的异常有哪些?
 *          1、NUllPoint
 *          1、MathArxx
 *          2、脱颖而出 专业性 基本功
 *            1、NUllPointException        内存分析  引出空指针的问题
 *                  1、spring 对象管理 出现问题
 *                  2、获取前端数据的时候 字段传入的格式不对 xxx
 *            2、index 数组越界
 *                  1、下标超了
 *                  2、场景 ArrayList 底层是数组 不会越界 源码分析一下
 *                  3、开发使用使用ArrayList
 */
@SpringBootApplication
public class SmsApplication {

    public static void main(String[] args) {

        SpringApplication.run(SmsApplication.class, args);

    }

}
